package ifmo.compiler.task21.lexer.tokens;

/**
 * List of token types
 *
 * @author byaminov
 */
public enum TokenType {
    DECIMAL,
    FLOATING,
    RATIONAL,
    WS,
    LINE_COMMENT,
    END,

    // Identifiers
    IDENTIFIER,
    IF,
    ELSE,
    DO,
    WHILE,
    GOTO,
    TYPE,
    NULL,
    TRUE,
    FALSE,
    NEW,

    INT,
    FLOAT,
    TYPE_RATIONAL,
    BOOLEAN,
    VECTOR,

    // Symbols
    SYMBOL, // Common type for symbols, not used in final tokens

    BRACKET_LEFT,
    BRACKET_RIGHT,
    BRACKET_CENTIPOISE_LEFT,
    BRACKET_CENTIPOISE_RIGHT,
    BRACKET_SQUARE_LEFT,
    BRACKET_SQUARE_RIGHT,

    COLON,
    SEMICOLON,
    COMMA,

    // Operators
    ASSIGN,
    NOT,
    DOT,
    EQUAL,
    NOT_EQUAL,
    LE,
    LT,
    GE,
    GT,
    MULT,
    DIVIDE,
    PLUS,
    MINUS
}
